package com.ruoyi.algorithm.service;

import com.ruoyi.algorithm.model.AlgorithmHistoryModel;
import com.ruoyi.algorithm.model.AlgorithmListModel;
import com.ruoyi.algorithm.model.AlgorithmModel;
import com.ruoyi.algorithm.model.AlgorithmOnLineStateModel;
import com.beihu.sightplus.common.response.PageResult;

public interface AlgorithmService {
    /**
     * 新增算法
     */
    void add(AlgorithmModel algorithmModel);

    /**
     * 修改，当算子发生变化时，需要往算法历史表中添加一条新的数据，否则，算法表和算法历史表的数据，均进行修改操作
     */
    void update(AlgorithmModel algorithmModel);

    /**
     * 删除
     */
    void delete(Long algorithmId);

    /**
     * 算法上下线
     */
    void setOnlineState(AlgorithmOnLineStateModel algorithmOnLineStateModel);

    /**
     * 查询算法详情信息
     */
    AlgorithmModel detail(Long algorithmId);

    /**
     * 根据算法Id和算子Id,查询历史算法信息
     */
    AlgorithmHistoryModel getAlgorithmHistoryByAlgorithmIdAndOperatorId(Long algorithmId, Long operatorId);

    /**
     * 数据查询
     */
    PageResult listByPage(String orderAttr, String orderType, Long current, Long size, AlgorithmListModel algorithmListModel);
}
